Commercial promotions are tools often used by merchants to boost sales, such as coupons that offer discounts for future purchases, discounts on current purchases in response to excess inventory, shipping upgrades or shipping charge reductions tied to particular circumstances of credit card use, and so forth. Such promotions have understandably become an important aspect of modem electronic commerce.
Nevertheless, today's web server technology provides two ways of implementing commercial promotions, neither of which is entirely satisfactory. The first way is to encode the details of each promotion into the web server's compiled code. This enables a promotion to execute quickly on the web server, and therefore provides the advantage of not diminishing the responsiveness experienced by customers who use the web server. Unfortunately, specialized technical skill is required—the skill of a computer programmer—to add each new promotion, to end each promotion, or to change the terms of any current promotion. This reliance on specialized technical skill adds to the expense of offering promotions, and may also limit a merchant's agility when the need arises to change promotions in response to shifting market conditions.
The second way of implementing a promotion is to use a business-rules engine that manages promotions on behalf of the web server. A business-rules engine reduces the need for special technical skill to add or to change promotions, as a business-rules engine greatly simplifies the programming task. Unfortunately, the use of a business rules engine significantly diminishes the web server's responsiveness, because the rules that define promotions must be interpreted at each runtime rather than compiled beforehand and executed.
Because of these shortcomings of today's technology, there is a need for a new way of enabling a web server to provide commercial promotions, wherein the server remains responsive to customers and yet becomes efficient and agile when the need arises to add, change, or end a promotion.